void displayData(float temperature, float humidity) {
    // 读取颜色数据（使用局部变量）
    // 将 String 类型改为 char 数组（节省堆内存）
    char color_data[8] = {0};
    float r, g, b;; //分别定义用于存储红、绿、蓝三色值变量
    tcs.getRGB(&r, &g, &b);//读取红、绿、蓝三色值
    float c = (r + g + b) / 3; // 计算平均值
    
    float sum = c;           //===========

    Serial.print("\t");////////////////////////////////////////////
    Serial.print((int)sum); // 在串口中打印clear的值
    Serial.println();//////////////////////////////////////////////

    // 假设黑色阈值为 100，白色阈值为 500，你可以根据实际情况调整
    const int blackThreshold = 10;
    const int whiteThreshold = 25;

    if (sum < blackThreshold && sum > 0) {
        strcpy(color_data, "black"); // 使用 strcpy 替代字符串赋值
        // 识别到黑色，舵机转到 0 度
        myServo1.write(0);
        myServo2.write(0);
        delay(1000);
        Motor_Go(slowForward);
    } else if (sum > whiteThreshold && sum < 50) {
        strcpy(color_data, "white"); // 使用 strcpy 替代字符串赋值
        // 识别到白色，舵机转到 180 度
        myServo1.write(180);
        myServo2.write(180);
        delay(1000);
        Motor_Go(fastForward);
    } else {
        strcpy(color_data, "none"); // 使用strcpy进行赋值
        Motor_Go(Stop);
    }


    u8g2.firstPage();
    do {
        #ifdef USE_SMALL_FONT
            u8g2.setFont(u8g2_font_5x7_tf);  // 强制使用小字体
        #endif
      
        u8g2.setCursor(0, 20);
        u8g2.print("T:");
        u8g2.print(temperature, 1);  // 替换printf为print组合

        u8g2.setCursor(0, 20);
        u8g2.print("H:");
        u8g2.print(humidity, 1);
        u8g2.print("% C:");
        u8g2.print(color_data);
      
    } while (u8g2.nextPage());
}
  
void displayError(const __FlashStringHelper* message) {
    u8g2.firstPage();
    do {
        #ifdef USE_SMALL_FONT
            u8g2.setFont(u8g2_font_5x7_tf);
        #else
            u8g2.setFont(u8g2_font_ncenB08_tr);
        #endif
        
        u8g2.setCursor(0, 30);
        u8g2.print(F("ERROR:"));
        u8g2.setCursor(0, 45);
        u8g2.print(message);
    } while (u8g2.nextPage());
}

    
